package org.edu.modules.common.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.edu.modules.common.entity.VeBaseAppUser;
import org.edu.modules.common.vo.VoAppUserBySearch;

@Mapper
public abstract interface VeBaseAppUserMapper extends BaseMapper<VeBaseAppUser> {
    public abstract int updateAppUserById(String url, String id);

    public abstract int updateAppUserPasswordById(@Param("pwd")String pwd, @Param("strength")String strength, @Param("id")String id);

    public abstract int addSysUser(VeBaseAppUser veBaseAppUser);

    public abstract VeBaseAppUser getAppUserByUserId(String userId);

    public abstract Integer getIdByRoleCode(String code);
    public abstract Map getSysRoleUser(String userId, Integer roleId);

    public abstract int addSysRoleUser(String userId, Integer roleId);

    public abstract List<Map<String, Object>> getOrganRootList();

    public abstract List<Map<String, Object>> getOrganBodyList();

    public abstract List<Map<String, Object>> getAppUserListByOrganId(String paramString);

    public abstract List<Map<String, Object>> getAppUserBySearch(VoAppUserBySearch voAppUserBySearch);

    public abstract int updateAppUserByUserId(String userId);

    public abstract int updateSysUserDel(String userId);
    public abstract int deleteSysUser(String userId);
    public abstract int updateSysUserDelBatch(@Param("userIds") List<String> userIds);


    public abstract int deleteOrgan(String userId);

    public abstract int deleteRole(String userId);
    public abstract int deleteRole2(String userId,Integer roleId);

    public abstract List<Map<String, Object>> queryResourcePageList();

    public abstract IPage<Map<String, Object>> getDataListByTableName(Page paramPage, String paramString);

    public abstract List<Map<String, Object>> queryColumnNameListByTableName(String tableName);

    public abstract List<Map<String, Object>> querySysRoleList();

    public abstract List<Map<String, Object>> queryAppUserTeacherList();

    public abstract int stopAppUserByUserId(String userId);

    public abstract List<Map<String, Object>> queryAppManageList();

    public abstract List<Map<String, Object>> getUnreadMessageCountUserId();

    public abstract List<Map<String, Object>> queryAppUserListByRoleId(Integer roleId);

    public abstract List<Map<String, Object>> getRoleNameByUserId(String userId, Integer roleId);
}
